﻿#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)

#include <stdio.h>
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int

int main()
{
	/*编写程序需求如下：
		取u16 a = 0xaabb的低八位-- 0xbb
		取u16 b = 0xccdd的中八位-- 0xcd   0x0cd0 << 4  0xcd00
		取u16 c = 0xeeff的高八位-- 0xee  -- - 0xee00 << 8 == 0xee0000
		合成一个数据0xeecdbb*/
	/*u16 a = 0xaabb;
	u16 b = 0xccdd;
	u16 c = 0xeeff;
	u32 d = (a & 0x00ff) | (b & 0x0ff0) << 4 | (c & 0xff00) << 8;
	printf("%#x",d);*/


	/*编写程序需求如下：
		场景 :
	某个协议帧如下
		要发送数据位 0xfa  0xfb  0xfc  0xfd  0xff  和 校验和(之前发送数据的 和取低八位)
		请计算出要发送的校验和并且打印;*/
	/*u8 c = 0xfa + 0xfb + 0xfc + 0xfd + 0xff;
	printf("%x",c);*/

	//用户输入三个数，打印最大的数--用三目运算
	/*int a, b, c;
	scanf("%d%d%d",&a,&b,&c);
	int d = a > b ? (a > c ? a : c) : b > c ? b : c;
	printf("%d",d);*/

	//输入一个正整数并将其分解质因数
	/*int num;
	scanf("%d",&num);
	printf("%d=",num);
	for (int i = 2; i < num; i++)
	{
		while (num != i)
		{
			if (num % i == 0)
			{
				printf("%d*", i);
				num /= i;
			}
			else
			{
				break;
			}
		}
		
	}
	printf("%d",num);*/
	//打印斐波那契额数列的前n项数据。   0 1  1  2  3  5  8  13 21 ....
	/*int n;
	scanf("%d",&n);
	int t1 = 0, t2 = 1, sum = 0, next;
	for (int i = 0; i < n; i++)
	{
		printf("%d ",t1);
		next = t1 + t2;
		t1 = t2;
		t2 = next;
	}*/
	//有个16位的整数，每4位为一个数，求4个数据的和
	//u16 a = 0xabcd;
	//u8 b = a & 0x000f;//13
	//u8 c = (a & 0x00f0) >> 4;//12
	//u8 d = (a & 0x0f00) >> 8;//11
	//u8 e = (a & 0xf000) >> 12;//10
	//u16 f = b + c + d + e;
	//printf("%d",f);

	/*求s = a + aa + aaa + aaaa + aa…a的值，其中a是一个数字。
		例如，输入一个2，在输入一个5；2 + 22 + 222 + 2222 + 22222(此时共有5个数相加)，几个数相加有键盘控制。*/
							//		 2*0+2 (2*10+2) (2 * 10 + 2)*10+2
	/*int n, next = 0;
	int sum = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		next = ( next * 10 )+ 2;
		sum += next ;
	}
	printf("%d",sum);*/
}
